package com.itheima.a04objectdemo01;

/***
 *@title ObjectDemo03
 *@description <TODO description class purpose>
 *@author 12468
 *@version 1.0.0
 *@create 2024-11-27 23:26
 **/
public class ObjectDemo03 {
    public static void main(String[] args) {
        String s = "abc";
        StringBuilder sb = new StringBuilder("abc");

        /**
         * 因为 equals 方法是被字符串 s 调用的
         * 索引 equals 要看 String 类中的
         * 字符串中的 equals 方法，先判断参数是否为字符串
         * 如果是字符串，在比较内部的属性
         * 但是如果参数不是字符串，直接返回 false
         */
        System.out.println(s.equals(sb)); // false

        /**
         * 因为 equals 方法是被 StringBuilder 调用的
         * 所用这里的 equals 方法要看 StringBuilder 中的 equals 方法
         * 那么在 StringBuilder 当中， 没有重写 equals 方法
         * 使用的是 object 类中的
         * 在 Object 当中默认使用 == 号比较两个对象的地址值
         * 而这里的 s 和 sb 记录的地址值是不一样的，所以结果返回 false
         */
        System.out.println(sb.equals(s)); // false
    }
}
